package math

import "fmt"

// 输入数字n，按照顺序打印出从1到最大的n位十进制数，
// 例如输入3 则打印出123一直到最大的三位数999

func PrintToMaxDigits(n int) {
	if n <= 0 {
		return
	}
	number := make([]byte, n+1)
	number[n] = byte('0')
	for i := 0; i < 10; i++ {
		number[0] = byte('0') + byte(i)
		PrintToMaxDigitsRecursively(number, n, 0)
	}
}

func PrintToMaxDigitsRecursively(number []byte, length int, index int) {
	if index == length-1 {
		fmt.Println(string(number))
		return
	}
	for i := 0; i < 10; i++ {
		number[index+1] = byte(i) + byte('0')
		PrintToMaxDigitsRecursively(number, length, index+1)
	}
}
